Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Crate matches

Source
Expand description

A macro to evaluate, as a boolean, whether an expression matches a pattern.

For users who build using only Rust 1.42 and newer, consider using std::matches, which is included in the standard library prelude and thus is automatically in scope.

§Examples

#[macro_use]
extern crate matches;

#[derive(Debug)]
pub enum Foo<T> {
    A,
    B(T),
}

impl<T> Foo<T> {
    pub fn is_b(&self) -> bool {
        matches!(*self, Foo::B(_))
    }
}

impl<T: core::fmt::Debug> Foo<T> {
    pub fn assert_is_b(&self) {
        assert_matches!(&self, Foo::B(_));
    }
}

Macros§

assert_matches
Assert that an expression matches a refutable pattern.
debug_assert_matches
Assert that an expression matches a refutable pattern using debug assertions.
matches
Check if an expression matches a refutable pattern.